/******************************************************************************
 * Copyright (C) 2011 ShenZhen ComTop Information Technology Co.,Ltd
 * All Rights Reserved.
 * 本软件为深圳康拓普开发研制。未经本公司正式书面同意，其他任何个人、团体不得使用、
 * 复制、修改或发布本软件.
 *****************************************************************************/

package com.code.common.mq;

import java.io.Serializable;

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.Session;

import org.apache.activemq.command.ActiveMQTopic;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.core.MessageCreator;
import org.springframework.stereotype.Repository;

/**
 * 消息发送
 * 
 * @author 郑重
 * @since 1.0
 * @version 2010-12-2 郑重
 */
@Repository
public class JMSSender {
    
    /**
     * 模板
     */
    private JmsTemplate jmsTemplate;
    
    /**
     * @return Returns the jmsTemplate.
     */
    public JmsTemplate getJmsTemplate() {
        return jmsTemplate;
    }
    
    /**
     * @param jmsTemplate The jmsTemplate to set.
     */
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }
    
    /**
     * @param queueName 队列名称
     * @param message 消息
     */
    public void send(String queueName, final Serializable message) {
        jmsTemplate.send(queueName, new MessageCreator() {
            
            public Message createMessage(Session session) throws JMSException {
                return session.createObjectMessage(message);
            }
        });
    }
    
    /**
     * @param queueName 队列名称
     * @param message 消息
     */
    public void sendToTopic(String queueName, final Serializable message) {
        ActiveMQTopic objActiveMQTopic = new ActiveMQTopic(queueName);
        jmsTemplate.send(objActiveMQTopic, new MessageCreator() {
            
            public Message createMessage(Session session) throws JMSException {
                return session.createObjectMessage(message);
            }
        });
    }
}